home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / RIncludes / Controls.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  21.2 KB  |  502 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Controls.r
  3.  
  4.      Contains:    Control Manager interfaces
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __CONTROLS_R__
  19. #define __CONTROLS_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #define kControlSupportsNewMessages     ' ok '                /*  CDEF should return as result of kControlMsgTestNewMsgSupport */
  26. #define kControlFocusNoPart             0                    /*  tells control to clear its focus */
  27. #define kControlFocusNextPart             (-1)                /*  tells control to focus on the next part */
  28. #define kControlFocusPrevPart             (-2)                /*  tells control to focus on the previous part */
  29.  
  30. #define kControlEntireControl             0
  31. #define kControlKeyFilterBlockKey         0
  32. #define kControlKeyFilterPassKey         1
  33.  
  34. #define kControlKeyScriptBehaviorAllowAnyScript  'any '        /*  leaves the current keyboard alone and allows user to change the keyboard. */
  35. #define kControlKeyScriptBehaviorPrefersRoman  'prmn'        /*  switches the keyboard to roman, but allows them to change it as desired. */
  36. #define kControlKeyScriptBehaviorRequiresRoman  'rrmn'        /*  switches the keyboard to roman and prevents the user from changing it. */
  37.  
  38.                                                             /*  Meta-font numbering - see not above  */
  39. #define kControlFontBigSystemFont         (-1)                /*  force to big system font */
  40. #define kControlFontSmallSystemFont     (-2)                /*  force to small system font */
  41. #define kControlFontSmallBoldSystemFont  (-3)                /*  force to small bold system font */
  42.  
  43. #define kControlUseFontMask             0x0001
  44. #define kControlUseFaceMask             0x0002
  45. #define kControlUseSizeMask             0x0004
  46. #define kControlUseForeColorMask         0x0008
  47. #define kControlUseBackColorMask         0x0010
  48. #define kControlUseModeMask             0x0020
  49. #define kControlUseJustMask             0x0040
  50. #define kControlUseAllMask                 0x00FF
  51. #define kControlAddFontSizeMask         0x0100
  52.  
  53. #define kControlAddToMetaFontMask         0x0200
  54. #define kControlFontStyleTag             'font'
  55. #define kControlKeyFilterTag             'fltr'
  56.  
  57.                                                             /*  Control feature bits - returned by GetControlFeatures  */
  58. #define kControlSupportsGhosting         0x01
  59. #define kControlSupportsEmbedding         0x02
  60. #define kControlSupportsFocus             0x04
  61. #define kControlWantsIdle                 0x08
  62. #define kControlWantsActivate             0x10
  63. #define kControlHandlesTracking         0x20
  64. #define kControlSupportsDataAccess         0x40
  65. #define kControlHasSpecialBackground     0x80
  66. #define kControlGetsFocusOnClick         0x0100
  67. #define kControlSupportsCalcBestRect     0x0200
  68. #define kControlSupportsLiveFeedback     0x0400
  69.  
  70. #define kControlHasRadioBehavior         0x0800
  71. #define kControlAutoToggles             0x4000
  72. #define kControlSupportsGetRegion         0x00020000
  73.  
  74. #define kControlMsgDrawGhost             13
  75. #define kControlMsgCalcBestRect         14                    /*  Calculate best fitting rectangle for control */
  76. #define kControlMsgHandleTracking         15
  77. #define kControlMsgFocus                 16                    /*  param indicates action. */
  78. #define kControlMsgKeyDown                 17
  79. #define kControlMsgIdle                 18
  80. #define kControlMsgGetFeatures             19
  81. #define kControlMsgSetData                 20
  82. #define kControlMsgGetData                 21
  83. #define kControlMsgActivate             22
  84. #define kControlMsgSetUpBackground         23
  85. #define kControlMsgCalcValueFromPos     26
  86. #define kControlMsgTestNewMsgSupport     27                    /*  See if this control supports new messaging */
  87.  
  88. #define kControlMsgSubValueChanged         25
  89. #define kControlMsgSubControlAdded         28
  90. #define kControlMsgSubControlRemoved     29
  91.  
  92. #define kControlMsgApplyTextColor         30
  93. #define kControlMsgGetRegion             31
  94.  
  95.                                                             /*  Bevel Button Proc IDs  */
  96. #define kControlBevelButtonSmallBevelProc  32
  97. #define kControlBevelButtonNormalBevelProc  33
  98. #define kControlBevelButtonLargeBevelProc  34
  99.  
  100.                                                             /*  Bevel button graphic alignment values  */
  101. #define kControlBevelButtonAlignSysDirection  (-1)            /*  only left or right */
  102. #define kControlBevelButtonAlignCenter     0
  103. #define kControlBevelButtonAlignLeft     1
  104. #define kControlBevelButtonAlignRight     2
  105. #define kControlBevelButtonAlignTop     3
  106. #define kControlBevelButtonAlignBottom     4
  107. #define kControlBevelButtonAlignTopLeft  5
  108. #define kControlBevelButtonAlignBottomLeft  6
  109. #define kControlBevelButtonAlignTopRight  7
  110. #define kControlBevelButtonAlignBottomRight  8
  111.  
  112.                                                             /*  Bevel button text alignment values  */
  113. #define kControlBevelButtonAlignTextSysDirection  0
  114. #define kControlBevelButtonAlignTextCenter  1
  115. #define kControlBevelButtonAlignTextFlushRight  (-1)
  116. #define kControlBevelButtonAlignTextFlushLeft  (-2)
  117.  
  118.                                                             /*  Bevel button text placement values  */
  119. #define kControlBevelButtonPlaceSysDirection  (-1)            /*  if graphic on right, then on left */
  120. #define kControlBevelButtonPlaceNormally  0
  121. #define kControlBevelButtonPlaceToRightOfGraphic  1
  122. #define kControlBevelButtonPlaceToLeftOfGraphic  2
  123. #define kControlBevelButtonPlaceBelowGraphic  3
  124. #define kControlBevelButtonPlaceAboveGraphic  4
  125.  
  126. #define kControlBevelButtonSmallBevelVariant  0
  127. #define kControlBevelButtonNormalBevelVariant  0x01
  128. #define kControlBevelButtonLargeBevelVariant  0x02
  129. #define kControlBevelButtonMenuOnRight     0x04
  130.  
  131. #define kControlBehaviorPushbutton         0
  132. #define kControlBehaviorToggles         0x0100
  133. #define kControlBehaviorSticky             0x0200
  134. #define kControlBehaviorMultiValueMenu     0x4000                /*  only makes sense when a menu is attached. */
  135. #define kControlBehaviorOffsetContents     0x8000
  136.  
  137. #define kControlBehaviorCommandMenu     0x2000                /*  menu holds commands, not choices. Overrides multi-value bit. */
  138. #define kControlContentTextOnly         0
  139. #define kControlContentIconSuiteRes     1
  140. #define kControlContentCIconRes         2
  141. #define kControlContentPictRes             3
  142. #define kControlContentIconSuiteHandle     129
  143. #define kControlContentCIconHandle         130
  144. #define kControlContentPictHandle         131
  145. #define kControlContentIconRef             132
  146.  
  147. #define kControlBevelButtonContentTag     'cont'                /*  ButtonContentInfo */
  148. #define kControlBevelButtonTransformTag  'tran'                /*  IconTransformType */
  149. #define kControlBevelButtonTextAlignTag  'tali'                /*  ButtonTextAlignment */
  150. #define kControlBevelButtonTextOffsetTag  'toff'            /*  SInt16 */
  151. #define kControlBevelButtonGraphicAlignTag  'gali'            /*  ButtonGraphicAlignment */
  152. #define kControlBevelButtonGraphicOffsetTag  'goff'            /*  Point */
  153. #define kControlBevelButtonTextPlaceTag  'tplc'                /*  ButtonTextPlacement */
  154. #define kControlBevelButtonMenuValueTag  'mval'                /*  SInt16 */
  155. #define kControlBevelButtonMenuHandleTag  'mhnd'            /*  MenuHandle */
  156. #define kControlBevelButtonCenterPopupGlyphTag  'pglc'        /*  Boolean: true = center, false = bottom right */
  157.  
  158. #define kControlBevelButtonLastMenuTag     'lmnu'                /*  SInt16: menuID of last menu item selected from */
  159. #define kControlBevelButtonMenuDelayTag  'mdly'                /*  SInt32: ticks to delay before menu appears */
  160.  
  161.                                                             /*  Boolean: True = if an icon of the ideal size for */
  162.                                                             /*  the button isn't available, scale a larger or */
  163.                                                             /*  smaller icon to the ideal size. False = don't */
  164.                                                             /*  scale; draw a smaller icon or clip a larger icon. */
  165.                                                             /*  Default is false. Only applies to IconSuites and */
  166. #define kControlBevelButtonScaleIconTag  'scal'                /*  IconRefs. */
  167.                                                             /*  Slider proc IDs  */
  168. #define kControlSliderProc                 48
  169. #define kControlSliderLiveFeedback         0x01
  170. #define kControlSliderHasTickMarks         0x02
  171. #define kControlSliderReverseDirection     0x04
  172. #define kControlSliderNonDirectional     0x08
  173.  
  174.                                                             /*  Triangle proc IDs  */
  175. #define kControlTriangleProc             64
  176. #define kControlTriangleLeftFacingProc     65
  177. #define kControlTriangleAutoToggleProc     66
  178. #define kControlTriangleLeftFacingAutoToggleProc  67
  179.  
  180.                                                             /*  Tagged data supported by disclosure triangles  */
  181. #define kControlTriangleLastValueTag     'last'                /*  SInt16 */
  182.                                                             /*  Progress Bar proc IDs  */
  183. #define kControlProgressBarProc         80
  184.                                                             /*  Tagged data supported by progress bars  */
  185. #define kControlProgressBarIndeterminateTag  'inde'            /*  Boolean */
  186.                                                             /*  Little Arrows proc IDs  */
  187. #define kControlLittleArrowsProc         96
  188.                                                             /*  Chasing Arrows proc IDs  */
  189. #define kControlChasingArrowsProc         112
  190.                                                             /*  Tabs proc IDs  */
  191. #define kControlTabLargeProc             128                    /*  Large tab size, north facing     */
  192. #define kControlTabSmallProc             129                    /*  Small tab size, north facing     */
  193. #define kControlTabLargeNorthProc         128                    /*  Large tab size, north facing     */
  194. #define kControlTabSmallNorthProc         129                    /*  Small tab size, north facing     */
  195. #define kControlTabLargeSouthProc         130                    /*  Large tab size, south facing     */
  196. #define kControlTabSmallSouthProc         131                    /*  Small tab size, south facing     */
  197. #define kControlTabLargeEastProc         132                    /*  Large tab size, east facing     */
  198. #define kControlTabSmallEastProc         133                    /*  Small tab size, east facing     */
  199. #define kControlTabLargeWestProc         134                    /*  Large tab size, west facing     */
  200. #define kControlTabSmallWestProc         135                    /*  Small tab size, west facing     */
  201.  
  202.                                                             /*  Tagged data supported by progress bars  */
  203. #define kControlTabContentRectTag         'rect'                /*  Rect */
  204. #define kControlTabEnabledFlagTag         'enab'                /*  Boolean */
  205. #define kControlTabFontStyleTag         'font'                /*  ControlFontStyleRec */
  206.  
  207. #define kControlTabInfoTag                 'tabi'                /*  ControlTabInfoRec */
  208. #define kControlTabInfoVersionZero         0
  209.                                                             /*  Visual separator proc IDs  */
  210. #define kControlSeparatorLineProc         144
  211.                                                             /*  Group Box proc IDs  */
  212. #define kControlGroupBoxTextTitleProc     160
  213. #define kControlGroupBoxCheckBoxProc     161
  214. #define kControlGroupBoxPopupButtonProc  162
  215. #define kControlGroupBoxSecondaryTextTitleProc  164
  216. #define kControlGroupBoxSecondaryCheckBoxProc  165
  217. #define kControlGroupBoxSecondaryPopupButtonProc  166
  218.  
  219.                                                             /*  Tagged data supported by group box  */
  220. #define kControlGroupBoxMenuHandleTag     'mhan'                /*  MenuHandle (popup title only) */
  221. #define kControlGroupBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  222.  
  223. #define kControlGroupBoxTitleRectTag     'trec'                /*  Rect. Rectangle that the title text/control is drawn in. (get only) */
  224.                                                             /*  Image Well proc IDs  */
  225. #define kControlImageWellProc             176
  226.                                                             /*  Tagged data supported by image wells  */
  227. #define kControlImageWellContentTag     'cont'                /*  ButtonContentInfo */
  228. #define kControlImageWellTransformTag     'tran'                /*  IconTransformType */
  229.  
  230.                                                             /*  Popup Arrow proc IDs  */
  231. #define kControlPopupArrowEastProc         192
  232. #define kControlPopupArrowWestProc         193
  233. #define kControlPopupArrowNorthProc     194
  234. #define kControlPopupArrowSouthProc     195
  235. #define kControlPopupArrowSmallEastProc  196
  236. #define kControlPopupArrowSmallWestProc  197
  237. #define kControlPopupArrowSmallNorthProc  198
  238. #define kControlPopupArrowSmallSouthProc  199
  239.  
  240.                                                             /*  Placard proc IDs  */
  241. #define kControlPlacardProc             224
  242.                                                             /*  Clock proc IDs  */
  243. #define kControlClockTimeProc             240
  244. #define kControlClockTimeSecondsProc     241
  245. #define kControlClockDateProc             242
  246. #define kControlClockMonthYearProc         243
  247.  
  248. #define kControlClockNoFlags             0
  249. #define kControlClockIsDisplayOnly         1
  250. #define kControlClockIsLive             2
  251.  
  252.                                                             /*  Tagged data supported by clocks  */
  253. #define kControlClockLongDateTag         'date'                /*  LongDateRec */
  254. #define kControlClockFontStyleTag         'font'                /*  ControlFontStyleRec */
  255.  
  256.                                                             /*  User Pane proc IDs  */
  257. #define kControlUserPaneProc             256
  258. #define kControlUserItemDrawProcTag     'uidp'                /*  UserItemUPP */
  259. #define kControlUserPaneDrawProcTag     'draw'                /*  ControlUserPaneDrawingUPP */
  260. #define kControlUserPaneHitTestProcTag     'hitt'                /*  ControlUserPaneHitTestUPP */
  261. #define kControlUserPaneTrackingProcTag  'trak'                /*  ControlUserPaneTrackingUPP */
  262. #define kControlUserPaneIdleProcTag     'idle'                /*  ControlUserPaneIdleUPP */
  263. #define kControlUserPaneKeyDownProcTag     'keyd'                /*  ControlUserPaneKeyDownUPP */
  264. #define kControlUserPaneActivateProcTag  'acti'                /*  ControlUserPaneActivateUPP */
  265. #define kControlUserPaneFocusProcTag     'foci'                /*  ControlUserPaneFocusUPP */
  266. #define kControlUserPaneBackgroundProcTag  'back'            /*  ControlUserPaneBackgroundUPP */
  267.  
  268.                                                             /*  Edit Text proc IDs  */
  269. #define kControlEditTextProc             272
  270. #define kControlEditTextPasswordProc     274
  271.  
  272. #define kControlEditTextInlineInputProc  276                /*  Can't combine with the other variants */
  273.                                                             /*  Tagged data supported by edit text  */
  274. #define kControlEditTextStyleTag         'font'                /*  ControlFontStyleRec */
  275. #define kControlEditTextTextTag         'text'                /*  Buffer of chars - you supply the buffer */
  276. #define kControlEditTextTEHandleTag     'than'                /*  The TEHandle of the text edit record */
  277. #define kControlEditTextKeyFilterTag     'fltr'
  278. #define kControlEditTextSelectionTag     'sele'                /*  EditTextSelectionRec */
  279. #define kControlEditTextPasswordTag     'pass'                /*  The clear text password text */
  280.  
  281. #define kControlEditTextKeyScriptBehaviorTag  'kscr'        /*  ControlKeyScriptBehavior. Defaults to "PrefersRoman" for password fields, */
  282.                                                             /*         or "AllowAnyScript" for non-password fields. */
  283. #define kControlEditTextLockedTag         'lock'                /*  Boolean. Locking disables editability. */
  284. #define kControlEditTextFixedTextTag     'ftxt'                /*  Like the normal text tag, but fixes inline input first */
  285. #define kControlEditTextValidationProcTag  'vali'            /*  ControlEditTextValidationUPP. Called when a key filter can't be: after cut, paste, etc. */
  286. #define kControlEditTextInlinePreUpdateProcTag  'prup'        /*  TSMTEPreUpdateUPP and TSMTEPostUpdateUpp. For use with inline input variant... */
  287. #define kControlEditTextInlinePostUpdateProcTag  'poup'        /*  ...The refCon parameter will contain the ControlHandle. */
  288.  
  289. #define kControlStaticTextProc             288
  290. #define kControlStaticTextStyleTag         'font'                /*  ControlFontStyleRec */
  291. #define kControlStaticTextTextTag         'text'                /*  Copy of text */
  292. #define kControlStaticTextTextHeightTag  'thei'                /*  SInt16 */
  293.  
  294. #define kControlStaticTextTruncTag         'trun'                /*  TruncCode (-1 means no truncation) */
  295.                                                             /*  Picture control proc IDs  */
  296. #define kControlPictureProc             304
  297. #define kControlPictureNoTrackProc         305                    /*  immediately returns kControlPicturePart */
  298.  
  299. #define kControlIconProc                 320
  300. #define kControlIconNoTrackProc         321                    /*  immediately returns kControlIconPart */
  301. #define kControlIconSuiteProc             322
  302. #define kControlIconSuiteNoTrackProc     323                    /*  immediately returns kControlIconPart */
  303.  
  304.                                                             /*  icon ref controls may have either an icon, color icon, icon suite, or icon ref. */
  305.                                                             /*  for data other than icon, you must set the data by passing a */
  306.                                                             /*  ControlButtonContentInfo to SetControlData */
  307. #define kControlIconRefProc             324
  308. #define kControlIconRefNoTrackProc         325                    /*  immediately returns kControlIconPart */
  309.  
  310. #define kControlIconTransformTag         'trfm'                /*  IconTransformType */
  311. #define kControlIconAlignmentTag         'algn'                /*  IconAlignmentType */
  312.  
  313. #define kControlIconResourceIDTag         'ires'                /*  SInt16 resource ID of icon to use */
  314. #define kControlIconContentTag             'cont'                /*  accepts a ControlButtonContentInfo */
  315.  
  316.                                                             /*  Window Header proc IDs  */
  317. #define kControlWindowHeaderProc         336                    /*  normal header */
  318. #define kControlWindowListViewHeaderProc  337                /*  variant for list views - no bottom line */
  319.  
  320.                                                             /*  List Box proc IDs  */
  321. #define kControlListBoxProc             352
  322. #define kControlListBoxAutoSizeProc     353
  323.  
  324.                                                             /*  Tagged data supported by list box  */
  325. #define kControlListBoxListHandleTag     'lhan'                /*  ListHandle */
  326. #define kControlListBoxKeyFilterTag     'fltr'                /*  ControlKeyFilterUPP */
  327. #define kControlListBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  328.  
  329. #define kControlListBoxDoubleClickTag     'dblc'                /*  Boolean. Was last click a double-click? */
  330. #define kControlListBoxLDEFTag             'ldef'                /*  SInt16. ID of LDEF to use. */
  331.  
  332.                                                             /*  Theme Push Button/Check Box/Radio Button proc IDs  */
  333. #define kControlPushButtonProc             368
  334. #define kControlCheckBoxProc             369
  335. #define kControlRadioButtonProc         370
  336. #define kControlPushButLeftIconProc     374                    /*  Standard pushbutton with left-side icon */
  337. #define kControlPushButRightIconProc     375                    /*  Standard pushbutton with right-side icon */
  338.  
  339. #define kControlCheckBoxAutoToggleProc     371
  340. #define kControlRadioButtonAutoToggleProc  372
  341.  
  342.                                                             /*  Tagged data supported by standard buttons  */
  343. #define kControlPushButtonDefaultTag     'dflt'                /*  default ring flag */
  344. #define kControlPushButtonCancelTag     'cncl'                /*  cancel button flag (1.1 and later) */
  345.                                                             /*  Theme Scroll Bar proc IDs  */
  346. #define kControlScrollBarProc             384                    /*  normal scroll bar */
  347. #define kControlScrollBarLiveProc         386                    /*  live scrolling variant */
  348.  
  349.                                                             /*  Theme Popup Button proc IDs  */
  350. #define kControlPopupButtonProc         400
  351. #define kControlPopupFixedWidthVariant     0x01
  352. #define kControlPopupVariableWidthVariant  0x02
  353. #define kControlPopupUseAddResMenuVariant  0x04
  354. #define kControlPopupUseWFontVariant     0x08                /*  kControlUsesOwningWindowsFontVariant */
  355.  
  356. #define kControlPopupButtonMenuHandleTag  'mhan'            /*  MenuHandle */
  357. #define kControlPopupButtonMenuIDTag     'mnid'                /*  SInt16 */
  358.  
  359. #define kControlPopupButtonExtraHeightTag  'exht'            /*  SInt16 extra vertical whitespace within the button */
  360. #define kControlRadioGroupProc             416
  361. #define kControlScrollTextBoxProc         432
  362. #define kControlScrollTextBoxAutoScrollProc  433
  363.  
  364. #define kControlScrollTextBoxDelayBeforeAutoScrollTag  'stdl' /*  UInt32 (ticks until autoscrolling starts) */
  365. #define kControlScrollTextBoxDelayBetweenAutoScrollTag  'scdl' /*  UInt32 (ticks between scrolls) */
  366. #define kControlScrollTextBoxAutoScrollAmountTag  'samt'    /*  UInt16 (pixels per scroll) -- defaults to 1 */
  367. #define kControlScrollTextBoxContentsTag  'tres'            /*  SInt16 (resource ID of 'TEXT'/'styl') -- write only! */
  368.  
  369. #define popupFixedWidth                 0x01
  370. #define popupVariableWidth                 0x02
  371. #define popupUseAddResMenu                 0x04
  372. #define popupUseWFont                     0x08
  373.  
  374. #define popupTitleBold                     0x0100
  375. #define popupTitleItalic                 0x0200
  376. #define popupTitleUnderline             0x0400
  377. #define popupTitleOutline                 0x0800
  378. #define popupTitleShadow                 0x1000
  379. #define popupTitleCondense                 0x2000
  380. #define popupTitleExtend                 0x4000
  381. #define popupTitleNoStyle                 0x8000
  382.  
  383. #define popupTitleLeftJust                 0x00000000
  384. #define popupTitleCenterJust             0x00000001
  385. #define popupTitleRightJust             0x000000FF
  386.  
  387.  
  388. /*--------------------------cctb • Control Color old Lookup Table----------------------*/
  389. #ifdef oldTemp
  390.     type 'cctb' {
  391.             unsigned hex longint;                                    /* CCSeed                */
  392.             integer;                                                /* ccReserved            */
  393.             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  394.             wide array ColorSpec {
  395.                     integer        cFrameColor,                        /* partcode                */
  396.                                 cBodyColor,
  397.                                 cTextColor,
  398.                                 cElevatorColor;
  399.                     unsigned integer;                                /* RGB:    red                */
  400.                     unsigned integer;                                /*        green            */
  401.                     unsigned integer;                                /*        blue            */
  402.             };
  403.     };
  404. #else
  405.     type 'cctb' {
  406.             unsigned hex longint = 0;                                /* CCSeed                */
  407.             integer = 0;                                            /* ccReserved            */
  408.             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  409.             wide array ColorSpec {
  410.                     integer        cFrameColor,                        /* partcode                */
  411.                                 cBodyColor,
  412.                                 cTextColor,
  413.                                 cElevatorColor,
  414.                                 cFillPatColor,
  415.                                 cArrowsLight,
  416.                                 cArrowsDark,
  417.                                 cThumbLight,
  418.                                 cThumbDark,
  419.                                 cHiliteLight,
  420.                                 cHiliteDark,
  421.                                 cTitleBarLight,
  422.                                 cTitleBarDark,
  423.                                 cTingeLight,
  424.                                 cTingeDark;
  425.                     unsigned integer;                                /* RGB:    red                */
  426.                     unsigned integer;                                /*        green            */
  427.                     unsigned integer;                                /*        blue            */
  428.             };
  429.     };
  430. #endif
  431.  
  432.  
  433. /*----------------------------CNTL • Control Template-----------------------------------*/
  434. type 'CNTL' {
  435.         rect;                                                    /* Bounds                */
  436.         integer;                                                /* Value                */
  437.         byte            invisible, visible;                     /* visible                */
  438.         fill byte;
  439.         integer;                                                /* Max                    */
  440.         integer;                                                /* Min                    */
  441.         integer         pushButProc,                            /* ProcID                */
  442.                         checkBoxProc,
  443.                         radioButProc,
  444.                         pushButProcUseWFont = 8,
  445.                         checkBoxProcUseWFont,
  446.                         radioButProcUseWFont,
  447.                         scrollBarProc = 16;
  448.         longint;                                                /* RefCon                */
  449.         pstring;                                                /* Title                */
  450. };
  451.  
  452. #define    popupMenuCDEFproc        1008                            /* ProcID 1008 = 16 * 63        */
  453.  
  454.  
  455. /*--------------------------ldes • List Box Description Template------------------------*/
  456. /*    Used in conjunction with the list box control.                                      */
  457.  
  458. type 'ldes'
  459. {
  460.     switch
  461.     {
  462.         case versionZero:
  463.             key integer = 0;    /* version */
  464.  
  465.             integer;                                                /* Rows                    */
  466.             integer;                                                /* Columns                */
  467.             integer;                                                 /* Cell Height            */
  468.             integer;                                                /* Cell Width            */
  469.             byte            noVertScroll, hasVertScroll;            /* Vert Scroll            */
  470.             fill byte;                                                /* Filler Byte            */
  471.             byte            noHorizScroll, hasHorizScroll;            /* Horiz Scroll            */
  472.             fill byte;                                                /* Filler Byte            */
  473.             integer;                                                /* LDEF Res ID            */
  474.             byte            noGrowSpace, hasGrowSpace;                /* HasGrow?                */
  475.             fill byte;
  476.     };
  477. };
  478.  
  479.  
  480. /*-------------------------------tab# • Tab Control Template-----------------------------*/
  481. type 'tab#'
  482. {
  483.     switch
  484.     {
  485.         case versionZero:
  486.             key integer = 0;    /* version */
  487.  
  488.             integer = $$Countof(TabInfo);
  489.             array TabInfo
  490.             {
  491.                 integer;                                            /* Icon Suite ID        */
  492.                 pstring;                                            /* Tab Name                */
  493.                 fill long;                                            /* Reserved                */
  494.                 fill word;                                            /* Reserved                */
  495.             };
  496.     };
  497. };
  498.  
  499.  
  500. #endif /* __CONTROLS_R__ */
  501.  
  502.